package com.qdxwx.data.mapper.common;

import com.qdxwx.common.page.PageRequest;
import com.qdxwx.models.comment.Comment;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 评论dao层接口
 * Qdx NetSchool Platform
 * @author qdxwx
 * @updateTime 2022/5/25
 * @description
 */
@Repository
public interface CommentMapper {

	/**
	 * 以用户及相关Id查询评论，主要用于判断是否重复评论
	 * @param userId
	 * @param otherId
	 * @param typeId
	 * @return
	 */
	Comment selectCommentByUser(long userId, int otherId, int typeId, int parentId);
	/**
	 * 查询评论
	 */
	Comment selectCommentById(int commentId);

	/**
	 * 分页查询评论
	 */
	int count(@Param("e")Comment comment);

	/**
	 * 分页查询评论
	 */
	List<Comment> selectCommentList(@Param("e")Comment comment, @Param("page") PageRequest page);
	/**
	 * 添加评论
	 * @param comment    评论实体
	 */
	int addComment(Comment comment);
	/**
	 * 更新评论
	 */
	int updateComment(Comment comment);

	int updateStatus(@Param("e") Comment comment);
	/**
	 * 更新评论点赞数,回复数等
	 */
	int updateCommentCount(@Param("id") int id, @Param("column") String column, @Param("count") int count);
	/**
	 * 删除评论
	 */
	int delComment(int commentId);

    Double selectScore(@Param("e") Comment comment);
}
